//
//  LinkedList.h
//  Snowflake
//
//  Created by Ed Mancebo on 2/16/11.
//  Copyright 2011 Personal. All rights reserved.
//

#import <Foundation/Foundation.h>
#import "LinkedListNode.h"

@interface LinkedList : NSObject {

@private
	LinkedListNode *head;
	LinkedListNode *tail;
	int mCount;
}

- (LinkedListNode*) getHead;
- (LinkedListNode*) getTail;

// add to end of list
- (void) add:(id)element;

// add after specified node
- (void) add:(id)element afterNode:(LinkedListNode*)node;

// remove given LinkedListNode
- (void) remove:(LinkedListNode*)node;

// remove first occurance of given data object id
- (void) removeFirst:(id)element;

// removes all nodes
- (void) clear;

// number of elements
- (int) count;

@end
